// pages/order/index.js
import {request} from "../../request/request.js"
Page({
    /**
     * 页面的初始数据
     */
    data: {
        tabs:[
            {
                id:0,
                value:"全部",
                isActive:true
            },
            {
                id:1,
                value:"待付款",
                isActive:false
            },
            {
                id:2,
                value:"待发货",
                isActive:false
            },
            {
                id:3,
                value:"退款/退货",
                isActive:false
            }
        ],
    },

    async getOrders(type){
        const res = await request({url:"/my/orders/all" , data:{type}})
        this.setData({
            // orders:res.data.message.orders
            orders: res.data.message.orders.map(v=>({...v,create_time_cn:(new Date(v.create_time*1000).toLocaleString())})) 
        })
    },

    onShow(){
        const token = wx.getStorageSync("token");
        if (!token) {
          wx.navigateTo({
            url: '/pages/auth/index'
          });
          return;
        }
    
        // 1 获取当前的小程序的页面栈-数组 长度最大是10页面 
        let pages = getCurrentPages();
        // 2 数组中 索引最大的页面就是当前页面
        let currentPage = pages[pages.length - 1];
        console.log(currentPage);
        // 3 获取url上的type参数
        const { type } = currentPage.options;
        // 4 激活选中页面标题 当 type=1 index=0 
        this.changeTitleByIndex(type-1);
        this.getOrders(type);
    },

    changeTitleByIndex(index){
        let {tabs} = this.data
        tabs.forEach((v,i)=>{
            i===index?v.isActive=true:v.isActive=false
        })
        this.setData({
            tabs
        })
    },
    tabsItemChange(e){
        var {index} = e.detail
        /* index是tabsItemChange是自带的属性 从0开始 */
        // this.onShow(index)  //这样也可以拿到type值捏
        /* 修改原数组 */
        // 这里用到的是深拷贝 拷贝可枚举属性
        /*  如果源目标对象中某个属性值是对另一个对象的引用，
        那么这个属性的拷贝仍然是对引用的拷贝。
        */
        // let tabs = Object.assign({},this.data)
        // 或者this.tabs 都不行 说不是一个数组。。转换了也不行
        this.changeTitleByIndex(index)
        /* 重新发送请求 */
        this.getOrders(index+1)
    },
})